package com.vcc.data.entity;


import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.RelationOneToMany;
import com.mybatisflex.annotation.Table;
import com.vcc.data.base.entity.BaseEntity;
import lombok.*;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 企业认证基础信息
 */
@EqualsAndHashCode(callSuper = true)
@Data
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Table(value = "vcc_enterprise_cert_info", comment = "企业认证信息表")
public class EnterpriseCertInfo extends BaseEntity implements Serializable {

    @Column(comment = "用户ID", value = "user_id")
    private Long userId;

    @Column(comment = "用户账号", value = "account",ignore = true)
    private String account;

    @Column(comment = "企业注册地区、国家", value = "register_country")
    private String registerCountry;

    //公司名
    @Column(comment = "公司中文名", value = "company_name_cn")
    private String companyNameCn;

    //公司英文名
    @Column(comment = "公司英文名", value = "company_name_en")
    private String companyNameEn;

    //商业登记证号码
    @Column(comment = "商业登记证号码", value = "license_code")
    private String licenseCode;

    //公司注册证书编号
    @Column(comment = "公司注册证书编号", value = "registration_number")
    private String registrationNumber;

    //公司注册地址
    @Column(comment = "公司注册地址", value = "register_address")
    private String registerAddress;

    //公司注册时间
    @Column(comment = "公司注册时间", value = "register_date")
    private String registerDate;

    //证件是否长期有效
    @Column(comment = "证件是否长期有效", value = "has_long_term")
    private Boolean hasLongTerm;

    //证件有效期
    @Column(comment = "证件有效期", value = "expire_date")
    private String expireDate;

    //经营地址是否和注册地址一致
    @Column(comment = "经营地址是否和注册地址一致", value = "has_operate_address_same")
    private Boolean hasOperateAddressSame;

    //经营国家
    @Column(comment = "经营国家/地区", value = "operate_country")
    private String operateCountry;

    //经营地址
    @Column(comment = "经营地址", value = "operate_address")
    private String operateAddress;

    //行业类别
    @Column(comment = "行业类别", value = "industry_type")
    private String industryType;

    //周年申报表图片
    @Column(comment = "周年申报表图片", value = "annual_report_img")
    private String annualReportImg;

    //商业登记证图片
    @Column(comment = "商业登记证图片", value = "license_img")
    private String licenseImg;

    //公司注册证书图片 香港位注册证书  其他事证明文件
    @Column(comment = "公司注册证书图片", value = "registration_cert_img")
    private String registrationCertImg;

    //业务地址
    @Column(comment = "业务地址", value = "business_address")
    private String businessAddress;

    @Column(comment = "状态 0 成功 1 失败 2等待", value = "status")
    private Integer status;

    @Column(comment = "步骤 1 注册地址 2 企业信息 3 行业类别 4 董事信息 5 受益人信息 6 审核中 7 完成审核", value = "step")
    private Integer step;

    @Column(comment = "请求时间", value = "request_date")
    private Date requestDate;

    @Column(comment = "审核人", value = "audit_id")
    private Long auditUserId;

    @Column(comment = "审核时间", value = "audit_date")
    private Date auditDate;

    @Column(comment = "审核备注", value = "audit_remark")
    private String auditRemark;

    //董事信息集合
    @RelationOneToMany(selfField = "id", targetField = "enterpriseCertInfoId")
    private List<EnterpriseManager> managers;

    //受益人信息集合
    @RelationOneToMany(selfField = "id", targetField = "enterpriseCertInfoId")
    private List<EnterpriseBeneficiary> beneficiaries;

}
